package com.zboot.zbootadmin.project.system.role.service;



import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zboot.zbootadmin.project.system.role.entity.SysRole;
import com.zboot.zbootadmin.project.system.role.entity.dto.RoleDto;

import java.util.Set;

/**
 * <p>
 * 角色信息表 服务类
 * </p>
 *
 * @author zyt
 * @since 2020-07-18
 */
public interface SysRoleService extends IService<SysRole> {

    /**
     *
     * @Description: 查询角色列表
     *
     * @author: zyt
     * @date: 22:41 2020/9/8
     * @param: [roleDto]
     * @return: com.alibaba.fastjson.JSONObject
     *
     */
    JSONObject queryRoleList(RoleDto roleDto);

    /**
     *
     * @Description: 插入角色
     *
     * @author: zyt
     * @date: 20:44 2020/9/19
     * @param: [sysRole]
     * @return: void
     *
     */
    void insertRole(SysRole sysRole);

    /**
     *
     * @Description: 删除角色
     *
     * @author: zyt
     * @date: 20:46 2020/9/19
     * @param: [roleIds]
     * @return: void
     *
     */
    void deleteRole(String[] roleIds);

    /**
     *
     * @Description: 根据id查询角色信息和编辑时回显的选中的菜单
     *
     * @author: zyt
     * @date: 8:49 2020/9/20
     * @param:
     * @return:
     *
     */
    JSONObject queryRoleById(String roleId);

    /**
     *
     * @Description: 修改角色信息
     *
     * @author: zyt
     * @date: 14:18 2020/9/20
     * @param: [sysRole]
     * @return: void
     *
     */
    void editRole(SysRole sysRole);

    /**
     *
     * @Description: 根据用户ID查询角色
     * 
     * @author: zyt
     * @date: 14:20 2020/11/1 
     * @param: [userId]
     * @return: java.util.Set<java.lang.String>
     *
     */
     Set<String> selectRolePermissionByUserId(Long userId);
}
